home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / jce.jar / javax / crypto / MacSpi.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-07-27  |  1.2 KB  |  53 lines

  1. package javax.crypto;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.security.InvalidAlgorithmParameterException;
  5. import java.security.InvalidKeyException;
  6. import java.security.Key;
  7. import java.security.spec.AlgorithmParameterSpec;
  8.  
  9. public abstract class MacSpi {
  10.    protected abstract int engineGetMacLength();
  11.  
  12.    protected abstract void engineInit(Key var1, AlgorithmParameterSpec var2) throws InvalidKeyException, InvalidAlgorithmParameterException;
  13.  
  14.    protected abstract void engineUpdate(byte var1);
  15.  
  16.    protected abstract void engineUpdate(byte[] var1, int var2, int var3);
  17.  
  18.    protected void engineUpdate(ByteBuffer var1) {
  19.       if (var1.hasRemaining()) {
  20.          if (var1.hasArray()) {
  21.             byte[] var2 = var1.array();
  22.             int var3 = var1.arrayOffset();
  23.             int var4 = var1.position();
  24.             int var5 = var1.limit();
  25.             this.engineUpdate(var2, var3 + var4, var5 - var4);
  26.             var1.position(var5);
  27.          } else {
  28.             int var6 = var1.remaining();
  29.  
  30.             int var8;
  31.             for(byte[] var7 = new byte[CipherSpi.a(var6)]; var6 > 0; var6 -= var8) {
  32.                var8 = Math.min(var6, var7.length);
  33.                var1.get(var7, 0, var8);
  34.                this.engineUpdate(var7, 0, var8);
  35.             }
  36.          }
  37.  
  38.       }
  39.    }
  40.  
  41.    protected abstract byte[] engineDoFinal();
  42.  
  43.    protected abstract void engineReset();
  44.  
  45.    public Object clone() throws CloneNotSupportedException {
  46.       if (this instanceof Cloneable) {
  47.          return super.clone();
  48.       } else {
  49.          throw new CloneNotSupportedException();
  50.       }
  51.    }
  52. }
  53.